package com.dapeng.seria;

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

public class KryoSerializerExample {

    public static void main(String[] args) {
        // 创建一个对象
        Person person = new Person(1, "John");

        // 使用 Kryo 进行序列化
        Kryo kryo = new Kryo();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Output output = new Output(baos);
        kryo.writeObject(output, person);
        output.close();

        byte[] bytes = baos.toByteArray();

        System.out.println("序列化长度: " + bytes.length);

        // 使用 Kryo 进行反序列化
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
        Input input = new Input(bais);
        Person deserializedPerson = kryo.readObject(input, Person.class);
        input.close();

        System.out.println("反序列化后的对象：" + deserializedPerson.getName() + ", " + deserializedPerson.getId());
    }
}
